Skip to content

test(mobile): match SDK font filename case - #23

Closed
mfethe1 wants to merge 1 commit into
product/mainfrom
codex/buzz-mobile-font-case
Closed

test(mobile): match SDK font filename case#23
mfethe1 wants to merge 1 commit into
product/mainfrom
codex/buzz-mobile-font-case

Conversation

@mfethe1

@mfethe1 mfethe1 commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

The mobile golden helper requests lowercase SDK font filenames. The pinned Flutter 3.41.7 SDK ships capitalized names, so Linux fails while loading MaterialIcons before it can compare any golden images. PR #20's Linux mobile job reported 2,235 passed and 14 failed tests: six helper tests and eight activity-sheet goldens.

Match the four filenames exactly: MaterialIcons-Regular.otf, Roboto-Regular.ttf, Roboto-Medium.ttf, and Roboto-Bold.ttf. Preserve synchronous font-file reads and explicit missing-font errors. Add failure-artifact collection for comparison PNGs, the Flutter version, and the tested commit so later hosted failures can be inspected.

Related issue

Observed on PR #20. The mobile tree is unchanged between that PR's base and head; this is a pre-existing test-helper portability bug. No duplicate font-case fix or issue was found in the repository search.

Testing

Candidate: ba3cd49b053a3fc9bbc62f563917167a1599147b, based on adeec6eb5c4ff425aa03d8a744a295da4429f67f.

  • Real pinned Flutter runtime with its font files on case-sensitive APFS: all six helper tests fail before the fix and pass afterward.
  • Each of four individual lowercase-filename mutations fails. Removing an actual font file also fails promptly with the missing-font error.
  • Restored helper plus activity golden run: six passed, eight existing golden comparisons failed. All eight rendered PNGs are byte-identical to the saved Airy baseline. No expected images or production UI changed.
  • Dart formatting, helper analysis, and Actionlint passed. The actual provenance shell produced valid version/SHA files; the artifact patterns matched 32 comparison PNGs plus those two files.
  • Full just ci after documented dependency setup: exit 1 at the final mobile stage, with 2,241 passed and eight baseline golden comparison failures. Desktop JavaScript tests passed 6,583/6,583, and preceding recipe stages completed. All eight full-suite rendered PNGs are byte-identical to the exact-base Airy outputs.
  • Linux mobile job 101822588975 ran pinned Flutter 3.41.7 on merge d43c70319b558118f8a58ebb59760929c3a7cf7c with the exact base/head above: 2,241 passed and eight golden comparisons failed. All six font-helper tests passed and there were no missing-font errors.
  • Failure artifact 10028306160 uploaded and downloaded successfully: 32 comparison PNGs plus Flutter version and tested-SHA files. All eight Linux actual PNGs differ from Airy; comparison against expected images changes 2,701–8,680 pixels. The mobile lane remains red, and these rendering differences require separate diagnosis before any expected-image change.

Signed-off-by: Michael Feth <mfethe1@gmail.com>
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mfethe1

mfethe1 commented Sep 11, 2026

Copy link
Copy Markdown
Owner Author

Diagnosis from this PR's own run (34147435648, head ba3cd49b05 — i.e. the run includes the font fix): the font fix works, but it is not sufficient to make Mobile green.

Evidence the fix landed correctly — these all pass in the same run:

  • golden_shot_test.dart: text renders with real glyphs, not tofu boxes
  • golden_shot_test.dart: lucide icons render with real glyphs
  • golden_shot_test.dart: loadAppFonts registers the package-qualified icon families

So Roboto-Regular.ttf now resolves on the case-sensitive Linux runner and real glyphs render. The lowercase path would have produced tofu boxes, and that assertion is green.

What still fails is narrower than "Mobile is broken" — 2241 passed, 8 failed, and all 8 are in agent_activity_sheet_golden_test.dart, all with the same signature:

Golden "goldens/01-hw014-error-state-with-retry.png": Pixel test failed, 1.32%, 4348px diff

A 1.32% diff with real glyphs rendering is checked-in golden drift, not a loading failure — the reference PNGs were generated under different rendering conditions than the runner now produces. A font-resolution failure would blow out far past 1.32%, and the glyph assertions would be red.

Two consequences worth separating:

  1. This PR is a correct, independently valuable fix. It should not be judged by the still-red Mobile check.
  2. Making Mobile green additionally requires regenerating the eight agent_activity goldens on the Linux runner image (or pinning a tolerance), which is out of scope here and should be its own PR.

Filing this so the repo-wide Mobile / Clients / Mobile red — it appears on 7+ open PRs — stops being attributed to whichever PR happens to be under review.

@mfethe1

mfethe1 commented Sep 11, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #40, which landed the same font-case fix plus the Linux-rendered goldens that were also required. Clients / Mobile is now green (2249 tests passed). Thanks — your font-case diff was byte-identical and correct; it just needed the goldens alongside it.

@mfethe1 mfethe1 closed this Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant